<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <meta name="google-site-verification" content="KEatQX-J4dYY-6J2KU_aP5X8gAJ8wS0lhylI8umX6WA" />
    <meta name="viewport" content="width=device-width,initial-scale=1,minimal-ui">
    <link rel="shortcut icon" href="../images/favicon.ico">
    <link rel="stylesheet" href="../css/code.css" type="text/css"/>
    <link rel="stylesheet" href="../css/bootstrap.css" type="text/css"/>
    <link rel="stylesheet" href="../css/main.css" type="text/css"/>
    <title>编程小梦|HBase 在HDFS上的物理目录结构</title>
</head>
<body>
<nav class="navbar navbar-default navbar-static-top" style="opacity: .9" role="navigation">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse"
                    data-target="#bs-example-navbar-collapse-1">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/">编程小梦</a>
        </div>
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav navbar-right">
                <li class="active"><a href="/">Blog</a></li>
                
                <li><a href="https://github.com/kangkaisen" target="_blank" rel="nofollow">GitHub</a></li>
                
                
                <li><a href="http://weibo.com/533234148" target="_blank" rel="nofollow">WeiBo</a></li>
                
            </ul>
        </div>
    </div>
</nav>
<div class="row" style="padding-top: 60px">
    <div class="container center-block">
        <div class="col-md-1"></div>
        <div class="col-md-10 col-sm-12">
            <h1> HBase 在HDFS上的物理目录结构</h1>
            <hr/>
            <p>作者: 康凯森</p>
            <p>日期: 2016-04-04</p>
            <p>分类: <a href="../tag/HBase.html" target="_blank" >HBase</a></p>
            <hr/>
            <p>文件可以被分为俩类，一类位于Hbase根目录下，另一类位于根目录的表目录下。</p>
<h3 id="根目录">根目录</h3>
<p>配置项 <code>&lt;name&gt; hbase.rootdir&lt;/name&gt;</code> 默认 “/hbase”</p>
<h3 id="根级文件">根级文件</h3>
<pre><code>### /hbase/WALs
被HLog实例管理的WAL文件。

### /hbase/WALs/data-hbase.com,60020,1443159380730
对于每个HregionServer,日志目录中都包含一个对应的子目录

### hbase/WALs/data-hbase.com,60020,1443159380730/data-hbase.com%2C60020%2C1443159380730.1443787240573
在每个子目录下有多个HLog文件（因为日志滚动）

### /hbase/oldWALs
当/hbase/WALs 中的HLog文件被持久化到存储文件中，不再需要日志文件时，它们会被移动到/hbase/oldWALs目录。

### /hbase/oldWALs/data-hbase.com%2C60020%2C1443159381290.1443787452518
具体的oldWALs文件。

### /hbase/hbase.id
集群的唯一ID

### /hbase/hbase.version
集群的文件格式版本信息

### /hbase/corrupt
损坏的日志文件，一般为空

### /hbase/archive/
存储表的归档和快照，HBase 在做 Split或者 compact 操作完成之后，会将 HFile 移到archive 目录中，然后将之前的 hfile 删除掉，该目录由 HMaster 上的一个定时任务定期去清理。
存储表的归档和快照具体目录:
/hbase/archive/data/default/表名/region名/列族名/fd2221d8d1ae4e579c21882f0ec4c5a5

### /hbase/.tmp
当对表做创建或者删除操作的时候，会将表move 到该 tmp 目录下，然后再去做处理操作。

### /hbase/data
hbase存储数据的核心目录
### /hbase/data/hbase
该目录存储了存储了 HBase 的 namespace、meta 和acl 三个系统级表。
namespace 中存储了 HBase 中的所有 namespace 信息，包括预置的hbase 和 default。acl 则是表的用户权限控制。

- /hbase/data/hbase/meta
- /hbase/data/hbase/namespace
- /hbase/data/hbase/acl

### /hbase/data/default/
该目录存储所有用户数据表
/hbase/data/default/表名
</code></pre><h3 id="表目录">表目录</h3>
<pre><code>### /hbase/data/default/表名/.tabledesc
表的元数据信息
#### /hbase/data/default/PERFORMANCE_TEST/.tabledesc/.tableinfo.0000000008
表的元数据信息具体文件

### /hbase/data/default/表名/.tmp
中间临时数据，当.tableinfo被更新时该目录就会被用到

### /hbase/data/default/表名/f569a17359edb2250cdf07964be606a7（由region的表名+Start Key+时间戳产生的hashcode）
表中每一个region的目录
</code></pre><h3 id="region-目录">region 目录</h3>
<pre><code>### /hbase/data/default/表名/region名/.regioninfo
包含了对应region的HRegionInfo的序列化信息，类似.tableinfo。hbase hbck 工具可以用它来生成丢失的表条目元数据

### /hbase/data/default/表名/region名/列族名
每个列族的所有实际数据文件

#### /hbase/data/default/表名/region名/列族名/文件名
hbase实际数据文件

### /hbase/data/default/表名/region名/.tmp(按需创建)
存储临时文件，比如某个合并产生的重新写回的文件。
</code></pre>
            <hr/>
            <div style="padding: 0; margin: 10px auto; width: 90%; text-align: center">
                <button id="rewardButton" , disable="enable" ,
                        onclick="var qr = document.getElementById('QR'); if (qr.style.display === 'none') {qr.style.display='block';} else {qr.style.display='none'}"
                        ,
                        style="cursor: pointer; border: 0; outline: 0; border-radius: 100%; padding: 0; margin: 0; letter-spacing: normal; text-transform: none; text-indent: 0px; text-shadow: none">
                    <span style="display: inline-block; width: 60px; height: 60px; border-radius: 100%; line-height: 58px; color: #fff; font-size:36px; font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, Helvetica, STKaiti, SimSun, serif; background: rgb(236,96,0)">赞</span>
                </button>
                <div id="QR" style="display: none;">
                    <p><img src="../images/weixin.jpeg" width="200" /></p>
                    <p><img src="../images/zhifubao.jpeg" width="200" /></p>
                </div>

            </div>
            <h3>评论</h3>
            <div id="vcomment"></div>
        </div>
        <div class="col-md-1"></div>
    </div>
</div>

<div class="row" style="padding-top: 60px">
    <div class="container center-block">
        <div class="col-md-1"></div>
        <div class="col-md-10 col-sm-12">
            <div class="ds-thread"
                 data-thread-key=5871ee5bd2f092c392ca4d46
                 data-title=HBase 在HDFS上的物理目录结构
                 data-url=hbase-hdfs>
            </div>
        </div>
        <div class="col-md-1"></div>
    </div>
</div>

<div class="footer">
    <a href="https://www.bcmeng.com/" target="_blank"  rel="nofollow">康凯森</a>
</div>

<script src="../js/code.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script src="../js/jquery.min.js"></script>
<script src="../js/bootstrap.js"></script>
<script>
    var _hmt = _hmt || [];
    (function() {
        var hm = document.createElement("script");
        hm.src = "https://hm.baidu.com/hm.js?1d198a377ef466190881d1c021155925";
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(hm, s);
    })();
</script>
<script src="../js/av-min.js"></script>
<script src='../js/Valine.min.js'></script>
<script type="text/javascript">
    window.valine = new Valine({
        el: '#vcomment' ,
        verify: true,
        notify: true,
        appId: 'BlLnB0re5OzQVzrgEplAxkyg-gzGzoHsz',
        appKey: 'wUyxSV0U4Vi7oK1EHK6ipErv',
        placeholder: '欢迎评论'
    });
</script>

</body>
</html>